home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / programming / other / gui4cli / docs / tutorials / dbase.gc < prev    next >
Text File  |  1999-05-14  |  4KB  |  141 lines

  1. G4C
  2.  
  3. ; DBase.gc
  4. ; This gui shows the simple use of DataBase listviews
  5. ; --------------------------------------------------------------
  6. ;       First make a DataBase file - This is done on loading
  7. ;       The file will have 0 records, and 4 fields.
  8. ;       Note : We only do this because we don't have any
  9. ;    existing file we can load..
  10. ; --------------------------------------------------------------
  11.  
  12. TEXTFILE ram:test.db
  13. GCDB
  14. 0
  15. 5
  16. %Number  4 N
  17. %Item   10 S
  18. %Units  8 N
  19. %Price  10 N
  20. %bal 20 S
  21. ###
  22.  
  23. ; --------------------------------------------------------------
  24. ;       This is the actual start : The global commands
  25. ; --------------------------------------------------------------
  26.  
  27. WINBIG 75 22 515 169 "DataBase example"
  28. WinType 11110001
  29.  
  30. ; --------------------------------------------------------------
  31. ;       On Loading we use a "while" loop to give the DBase
  32. ;       file some records - again.. not needed
  33. ; --------------------------------------------------------------
  34.  
  35. xONLOAD
  36.    ; use our database file (which we already created above)
  37.    lvuse dbase.gc 1
  38.  
  39.    ; start the while loop
  40.    count = 0
  41.    while $count < 50
  42.       ++count
  43.       ; Add a line - we give '', but since this is a dbase file,
  44.       ; the line that will be added will be the same length as
  45.       ; all the other records. The new record will be blank.
  46.       lvadd ''
  47.       ; now give the fields some values
  48.       %Number = $count
  49.       %Item   = 'Line $count'
  50.       %Units  = $($count * 1000)
  51.       %Price  = $(($count * 120)/4)
  52.       %bal    = 'This is line $%number'
  53.    endwhile
  54.  
  55.    ; now open the window
  56.    guiopen dbase.gc
  57.  
  58.    ; save the data, so you can have a look at the file
  59.    lvsave ram:test.db
  60.  
  61.  
  62. ; ------ On closing, quit.
  63.  
  64. xONCLOSE
  65.    guiquit dbase.gc
  66.  
  67.  
  68. ; --------------------------------------------------------------
  69. ;       The ListView 
  70. ;       - It's a normal multi-select lv..
  71. ; --------------------------------------------------------------
  72.  
  73. XLISTVIEW 0 13 514 157 "" var ram:test.db 0 MULTI
  74.    gadid 1
  75.    ; use the default proportional font (although monospace looks better)
  76.    gadfont #screen 8 000
  77.    
  78.    ; use the ATTR gadget modifier to modify how fields will appear..
  79.    ; note the field names (unlike variables) are case insensitive
  80.    attr flstyle %number/2031    ; colors : front, bgnd, selected bgnd, shadow
  81.    attr fljust %units/0         ; left justify %units 
  82.  
  83.    ; if an item is double clicked, print some stuff..
  84.    Say '$%number[-2][2]\. $%item : $%units x $%price = $($%units *$%price)\n'
  85.  
  86.  
  87. ; --------------------------------------------------------------
  88. ;       Use these buttons to sort the list according to
  89. ;       %number or %item fields
  90. ; --------------------------------------------------------------
  91.  
  92. CTEXT 6 0 "Sort by:" #screen 8 2 0 0001
  93.  
  94. XBUTTON 77 0 70 12 "Number"
  95.    lvuse dbase.gc 1
  96.    lvsort %number
  97.  
  98. XBUTTON 147 0 70 12 "Item"
  99.    lvuse dbase.gc 1
  100.    lvsort %item
  101.  
  102. ; --------------------------------------------------------------
  103. ;    These buttons will move the list left/right
  104. ; --------------------------------------------------------------
  105.  
  106. XBUTTON 235 0 20 12 "<<"
  107.     lvuse dbase.gc 1
  108.     lvmove -5
  109.  
  110. XBUTTON 255 0 20 12 "<"
  111.     lvuse dbase.gc 1
  112.     lvmove -1
  113.  
  114. XBUTTON 275 0 20 12 "[]"
  115.     lvuse dbase.gc 1
  116.     lvmove -1000        ; i.e. move back to start..
  117.  
  118. XBUTTON 295 0 20 12 ">"
  119.     lvuse dbase.gc 1
  120.     lvmove 1
  121.  
  122. XBUTTON 315 0 20 12 ">>"
  123.     lvuse dbase.gc 1
  124.     lvmove 5
  125.  
  126. ; --------------------------------------------------------------
  127. ;    The dbsum command
  128. ; --------------------------------------------------------------
  129.  
  130. XBUTTON 335 0 100 12 "DBSum"
  131.     ; sum some records..
  132.     lvuse dbase.gc 1
  133.     dbsum all %number num
  134.     dbsum selected %units uni
  135.     dbsum unselected %price pri
  136.     say 'All numbers = $num\nSelected units = $uni\nUnselected price = $pri\n'
  137.  
  138.  
  139.  
  140.  
  141.